package main

import (
	"GIN-API/global"
	"GIN-API/initialize"
	"GIN-API/internal/models"
	"GIN-API/internal/routes"
	"github.com/gin-gonic/gin"
	"sync"
)

func main() {
	// 初始化全局变量
	var dbOnce sync.Once
	dbOnce.Do(initialize.GlobalInit)

	// 数据库迁移
	err := global.DB.AutoMigrate(&models.User{}, &models.Channel{}, &models.Article{}, &models.Cover{})
	if err != nil {
		global.Logger.Fatalf("数据库迁移失败: %v", err)
	}
	global.Logger.Println("数据库迁移完成")

	// 创建路由
	r := gin.Default()

	// 加载路由
	routes.Routes(r)

	//// 设置静态文件和模板
	//r.Static("/static", "./static")
	//r.LoadHTMLGlob("templates/*")

	global.Logger.Printf("GIN API 服务器启动成功，监听端口: %s", global.Cfg.ServerPort)
	//log.Fatal(http.ListenAndServe(":"+cfg.ServerPort, r))
	err = r.Run(":" + global.Cfg.ServerPort)
	if err != nil {
		global.Logger.Fatalf("无法启动GIN API服务器: %v", err)
	}
}
